package com.chenfan.mcn.model.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author tangwei
 * Date:     2021/1/31 13:17
 * Description: 执行单导出
 */
@Data
public class ExcutionExportVO implements Serializable {

    private static final long serialVersionUID = -9038508934404671651L;
    /**
     * 执行单主键ID
     */
    private Long id;

    /**
     * 执行单类型
     */
    private Integer type;

    /**
     * 收入合同ID
     */
    private Long incomeContractId;
    /**
     * 红人ID
     */
    private Long starId;

    /**
     * 红人收款账号主键ID
     */
    private Long starAccountInfoId;

    /**
     * 客户ID
     */
    private Long customerId;

    /**
     * 我司合同主体ID(数据字典)
     */
    private Long contractingId;

    /**
     * star_platform_info表主键id
     */
    private Long starPlatformInfoId;

    /**
     * 所在平台ID
     */
    private String platformId;

    /**
     * 本单分成比例（%）
     */
    private BigDecimal dividedRate;


    /**
     * 约定发布日期开始时间
     */
    private Date promisePublishDate;

    /**
     * 约定发布日期结束时间
     */
    private Date promisePublishDateEnd;

    /**
     * 执行人id
     */
    private Long excutorId;

    /**
     * 执行统筹人id
     */
    private Long coordinatorId;

    /**
     * 是否业绩共享
     */
    private Integer performanceShare;

    /**
     * 业绩共享人id
     */
    private Long performanceSharerId;

    /**########################### 基础信息 ###########################**/

    /**
     * 正式执行单号
     */
    @Excel(name = "正式执行单号")
    private String excuteCode;

    /**
     * 正式执行单单据状态：-2_待执行, -1_执行中,10_已执行, 0_待提交, 1_审批中, 2_待打款, 3_审批拒绝, 4_已撤回, 9_作废
     */
    private Integer approvalStatus;

    /**
     * 正式执行单单据状态
     */
    @Excel(name = "正式执行单单据状态")
    private String approvalStatusName;

    /**
     * 客户名称
     */
    @Excel(name = "客户名称")
    private String customerName;

    /**
     * 红人平台昵称
     */
    @Excel(name = "红人平台昵称")
    private String platNickName;

    /**
     * 红人真实姓名
     */
    @Excel(name = "红人真实姓名")
    private String starName;

    /**
     * 品牌
     */
    @Excel(name = "品牌")
    private String brandName;

    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    private String productName;

    /**
     * 发布平台
     */
    @Excel(name = "发布平台")
    private String platformName;

    /**
     * 发布形式（数据字典）
     */
    @Excel(name = "发布形式")
    private String publishForm;

    /**
     * 发布日期（拼接时间段）
     */
    @Excel(name = "发布日期")
    private String publishDate;

    /**
     * 实际发布日期
     */
    @Excel(name = "实际发布日期", format = "yyyy-MM-dd")
    private Date realPublishDate;

    /**
     * 是否挂车/橱窗/组件：0否、1是
     */
    @Excel(name = "是否挂车/橱窗/组件",replace = {"否_0","是_1"})
    private Integer haveLinkCommand;

    /**
     * 是否平台下单 0/1
     */
    @Excel(name = "是否平台下单", replace = {"否_0","是_1"})
    private Integer platformReport;


    /**
     * 下单平台
     */
    @Excel(name = "下单平台")
    private String orderPlatform;

    /**
     * 平台订单号
     */
    @Excel(name = "平台订单号")
    private String platformOrderCode;

    /**
     * 是否直播合作广告：0否1是
     */
    @Excel(name = "是否直播合作广告", replace = {"否_0","是_1"})
    private Integer isLiveAd;

    /**
     * 是否有折扣返点审批：0否1是
     */
    @Excel(name = "是否有折扣返点审批", replace = {"否_0","是_1"})
    private Integer haveDiscountApproval;

    /**
     * 执行人名称
     */
    @Excel(name = "执行人")
    private String excutorName;

    /**
     * 执行统筹人
     */
    @Excel(name = "执行统筹人")
    private String coordinatorName;

    /**
     * 执行单回款状态
     */
    @Excel(name = "执行单回款状态", replace = {"未回款_0", "部分回款_1", "已回款_2"})
    private Integer paybackStatus;

    /**
     * 回款时间
     */
    @Excel(name = "回款时间", format = "yyyy-MM-dd")
    private Date paybackDate;

    /**
     * AE提成结算状态
     */
    @Excel(name = "AE提成结算状态", replace = {"未结算_0", "结算中_1", "已结算_2"})
    private Integer commissionSettleStatus;

    /**
     * 商务提成结算状态
     */
    @Excel(name = "商务提成结算状态", replace = {"未结算_0", "结算中_1", "已结算_2"})
    private Integer businessCommissionSettleStatus;

    /**
     * 客户返点结算状态
     */
    @Excel(name = "客户返点结算状态", replace = {"未结算_0", "结算中_1", "已结算_2"})
    private Integer rebateSettleStatus;

    /**
     * 创建人名称
     */
    @Excel(name = "执行单创建人")
    private String createName;

    /**
     * 业绩共享人名称
     */
    @Excel(name = "业绩共享人")
    private String performanceSharerName;

    /**
     * 创建时间
     */
    @Excel(name = "执行单创建时间", format = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;

    /**
     * 备注
     */
    @Excel(name = "执行单备注")
    private String remark;

    /**
     * 前置执行单号
     */
    @Excel(name = "前置执行单号")
    private String intentionCode;

    /**
     * 合同编号
     */
    @Excel(name = "合同编号")
    private String incomeContractCode;

    /**
     * 合同总金额（元）
     */
    @Excel(name = "合同总金额（元）")
    private BigDecimal businessAmount;

    /**
     * 合同类型
     */
    @Excel(name = "合同类型", replace = {"年度优惠-收入合同_0", "年度优惠-形式合同_1", "散单-收入合同_2", "散单-形式合同_3", "原框架合同_4", "框架合同_5", "_null"})
    private Integer contractType;


    /**
     * 合同签订日期
     */
    @Excel(name = "合同签订日期", format = "yyyy-MM-dd")
    private Date signDate;

    /**
     * 我司合同主体
     */
    @Excel(name = "我司合同主体")
    private String companyContractSubject;

    /**
     * 合同单据状态：0_待提交, 1_审批中, 2_审批通过, 3_审批拒绝, 4_已撤回, 9_作废
     */
    @Excel(name = "合同单据状态", replace = {"待提交_0", "审批中_1", "审批通过_2", "审批拒绝_3", "已撤回_4", "作废_9"})
    private Integer contractApprovalStatus;

    /**
     * 合同回款状态
     */
    @Excel(name = "合同回款状态", replace = {"未回款_0", "部分回款_1", "已回款_2"})
    private Integer contractPaybackStatus;

    /**########################### 执行反馈 ###########################**/

    /**
     * 发布链接
     */
    @Excel(name = "发布链接")
    private String publishUrl;

    /**
     * 阅读量
     */
    @Excel(name = "阅读量")
    private Integer readQuantity;

    /**
     * 互动量
     */
    @Excel(name = "互动量")
    private Integer interactQuantity;

    /**
     * 播放量
     */
    @Excel(name = "播放量")
    private Integer playQuantity;

    /**
     * 转化金额（元）
     */
    @Excel(name = "转化金额（元）", type = 10)
    private BigDecimal conversionAmount;


    /**########################### 支出信息 ###########################**/

    /**
     * 是否按执行结算
     */
    @Excel(name = "是否按执行结算", replace = {"是_0", "否_1"})
    private Integer isAllPlatform;

    /**
     * 结算方式
     */
    @Excel(name = "结算方式")
    private String settlementMethod;

    /**
     * 结算形式
     */
    @Excel(name = "结算形式", replace = {"线上结算_0", "线下结算_1"})
    private Integer settlementForm;

    /**
     * 收款户名
     */
    @Excel(name = "收款户名")
    private String accountName;

    /**
     * 是否工作室打款(1是，0否)
     */
    @Excel(name = "打款类型", replace = {"公司_1", "个人_2", "工作室_3", "_null"})
    private Integer studioPayment;


    /**
     * 红人个税
     */
    @Excel(name = "本单红人个税", type = 10)
    private BigDecimal taxRate;

    /**
     * 收款卡号
     */
    @Excel(name = "收款卡号")
    private String accountNumber;

    /**
     * 开户行
     */
    @Excel(name = "开户行")
    private String accountBank;

    /**
     * 开户支行
     */
    @Excel(name = "开户支行")
    private String accountBranchBank;

    /**
     * 开户省
     */
    @Excel(name = "开户省")
    private String accountProvince;

    /**
     * 开户市
     */
    @Excel(name = "开户市")
    private String accountCity;

    /**
     * 收款账户身份证号码
     */
    @Excel(name = "收款账户身份证号")
    private String accountIdCard;

    /**
     * 收款账户手机号
     */
    @Excel(name = "收款账户手机号")
    private String accountPhone;

    /**
     * 执行单总收入（元）
     */
    @Excel(name = "执行单总收入（元）", type = 10)
    private BigDecimal actualQuotedPrice;

    /**
     * 刊例原价（元）
     */
    @Excel(name = "刊例原价（元）", type = 10)
    private BigDecimal cardRatePrice;

    /**
     * 内容实际报价（元）
     */
    @Excel(name = "内容实际报价（元）", type = 10)
    private BigDecimal realAmount;

    /**
     * 其他加价收入（元）
     */
    @Excel(name = "其他加价收入（元）", type = 10)
    private BigDecimal otherAmount;

    /**
     * 其他加价收入说明
     */
    @Excel(name = "其他加价收入说明")
    private String otherAmountRemark;

    /**
     * 平台手续费/微任务金额（元）
     */
    @Excel(name = "平台手续费/微任务金额（元）", type = 10)
    private BigDecimal platformFee;

    /**
     * 机酒差旅费用（元）
     */
    @Excel(name = "机酒差旅费用（元）", type = 10)
    private BigDecimal otherFee;

    /**
     * 机酒差旅费用说明
     */
    @Excel(name = "机酒差旅费用说明")
    private String specialFeeRemark;

    /**
     * 其他补贴性收入（元）
     */
    @Excel(name = "其他补贴性收入（元）", type = 10)
    private BigDecimal subsidyIncomeAmount;

    /**
     * 其他补贴性收入说明
     */
    @Excel(name = "其他补贴性收入说明")
    private String subsidyIncomeRemark;

    /**
     * 内容报价返点比例（%）
     */
    @Excel(name = "内容报价返点比例（%）", suffix = "%")
    private BigDecimal aeCustomerRabateRate;

    /**
     * 内容报价返点金额（元）
     */
    @Excel(name = "内容报价返点金额（元）", type = 10)
    private BigDecimal aeCustomerRabateAmount;

    /**
     * 本单实际优惠比例（%）
     */
    @Excel(name = "本单实际优惠比例（%）", suffix = "%")
    private BigDecimal actualDiscountRatio;

    /**
     * 合作内容
     */
    @Excel(name = "合作内容")
    private String cooperationContent;

    /**
     * 红人是否入驻
     */
    @Excel(name = "红人是否入驻", replace = {"否_0", "是_1"})
    private Integer inSystemAdmin;


    /**
     * 紅人分成比例（%）
     */
    @Excel(name = "红人分成比例（%）", suffix = "%")
    private BigDecimal starDevidedRate;

    /**
     * 本单固定到手价（元）
     */
    @Excel(name = "本单固定到手价（元）", type = 10)
    private BigDecimal handPrice;

    /**
     * 系统计算分成金额（元）
     */
    @Excel(name = "系统计算分成金额（元）", type = 10)
    private BigDecimal sysDevidedAmount;

    /**
     * AE确认分成金额
     */
    @Excel(name = "AE确认分成金额(元)", type = 10)
    private BigDecimal aeDevidedAmount;

    /**
     * 财务确认分成金额
     */
    @Excel(name = "财务确认分成金额(元)")
    private BigDecimal financeDevidedAmount;

    /**
     * AE确认应收金额（元）
     */
    @Excel(name = "AE确认应收金额（元）")
    private BigDecimal aeReceivableAmount;

    /**
     * 财务确认应收金额（元）
     */
    @Excel(name = "财务确认应收金额（元）")
    private BigDecimal amountReceivable;

    /**
     * 系统计算文建税（元）
     */
    @Excel(name = "系统计算文建税（元）")
    private BigDecimal sysCulturalTax;

    /**
     * AE确认文建税
     */
    @Excel(name = "AE确认文建税（元）")
    private BigDecimal aeCulturalTax;

    /**
     * 财务确认文建税
     */
    @Excel(name = "财务确认文建税（元）")
    private BigDecimal financeCulturalTax;

    /**
     * AE备注
     */
    @Excel(name = "AE备注")
    private String aeDevidedRemark;

    /**
     * 财务备注
     */
    @Excel(name = "财务备注")
    private String financeDevidedRemark;

    /**
     * 打款至红人日期
     */
    @Excel(name = "打款至红人日期", format = "yyyy-MM-dd")
    private Date paidDate;

    /**
     * 开票方式(1=开票、3=后补票)',
     */
    @Excel(name = "开票方式", replace = {"开票_1", "无票_2", "后补票_3", "_null"})
    private Integer customerInvoiceWay;

    /**
     * 打款方式
     */
    @Excel(name = "打款方式")
    private String paidWay;

    /**
     * 打款备注
     */
    @Excel(name = "打款备注")
    private String paidRemark;

    /**
     * 回款核销单号
     */
    @Excel(name = "回款核销单号")
    private String clearNo;

    /**
     * 回款核销日期
     */
    @Excel(name = "回款核销日期")
    private String clearDate;

    /**
     * 回款核销实收付流水号
     */
    @Excel(name = "回款核销实收付流水号")
    private String recordSeqNo;

    /**
     * 回款流水到账日期
     */
    @Excel(name = "回款流水到账日期")
    private String arapDate;

    /**
     * 回款流水对方主体名称
     */
    @Excel(name = "回款流水对方主体名称")
    private String collectionUnit;

    /**
     * 回款流水我司主体名称
     */
    @Excel(name = "回款流水我司主体名称")
    private String paybackCompany;

    /**
     * 回款流水到账金额
     */
    @Excel(name = "回款流水到账金额")
    private String paybackArrivalAmount;
}